package net.vmiranda.traindroid.business.service;

import java.util.List;

import android.util.Log;

import net.vmiranda.traindroid.beans.rutas.Estacion;
import net.vmiranda.traindroid.beans.rutas.Nucleo;
import net.vmiranda.traindroid.scrappers.RenfeScrapper;

public class EstacionService{

	
	List<Estacion> listadoEstacionesNucleoActivo;
	RenfeScrapper rs;
	static EstacionService instance;

	

	Nucleo nucleoActual;
	
	private EstacionService() {
		rs = new RenfeScrapper();
	}

	

	
	public Estacion getEstacionByCode(int code){
		
		for(Estacion e : getListadoEstacionesNucleoActivo()){
			if(e.getCodigo() == code){
				return e;
			}
		}
		return null;
	}
	

	public List<Estacion> getEstacionesFromNucleo(Nucleo n){		
		Log.i("", "Recargando listado de estaciones de nucleo");
		return rs.getEstacionesNucleo(n);		
	}


	public Nucleo getNucleoByCode(int code){
		return new Nucleo(10, "Madrid");
	}

	
	public List<Estacion> getListadoEstacionesNucleoActivo(){
		if(listadoEstacionesNucleoActivo == null){
			listadoEstacionesNucleoActivo = getEstacionesFromNucleo(nucleoActual);
		}
		return listadoEstacionesNucleoActivo;
	}




	public long getNumeroEstaciones() {		
		return getListadoEstacionesNucleoActivo().size();
	}

	
	
	public Nucleo getNucleoActual() {
		return nucleoActual;
	}


	public void setNucleoActual(Nucleo nucleoActual) {
		this.nucleoActual = nucleoActual;
		listadoEstacionesNucleoActivo = getEstacionesFromNucleo(nucleoActual); //borramos la lista cacheada en memoria
	}




	
	public static EstacionService getInstance(){
		if(instance == null){
			instance = new EstacionService();
		}
		return instance;
	}


	
	
	

	
	
	
}
